160 PRINT"Characters per line of printer ("COL;:INPUT") : ",TMP:IF TMP<32 AND TMP<>0 OR TMP>132 THEN PRINT"--between 32 and 132, please!":GOTO 160 ELSE PRINT:PRINT"Horizontal printing--":IF TMP THEN COL=TMP
170 PRINT"Height ("HHIGH;:INPUT") : ",TMP:IF TMP<0 OR TMP>20 THEN PRINT"--try again":GOTO 170 ELSE IF TMP THEN HHIGH=TMP
180 PRINT"Width ("HWIDE;:INPUT") : ",TMP:IF TMP<0 OR TMP>COL THEN PRINT"--I don't think so...":GOTO 180 ELSE PRINT:PRINT"Vertical printing--":IF TMP THEN HWIDE=TMP
190 PRINT"Height ("VHIGH;:INPUT") : ",TMP:IF TMP<0 OR TMP>COL THEN PRINT"--invalid entry":GOTO 190 ELSE IF TMP THEN VHIGH=TMP
200 PRINT"Character width ("VWIDE;:INPUT") : ",TMP:IF TMP<0 OR TMP>COL*2 THEN PRINT"--uh uh. Try again.":GOTO 200 ELSE IF TMP THEN VWIDE=TMP
205 PRINT:PRINT"EBANNER characters can be made up of their usual-sized counterparts, or out of":PRINT"any other character you choose. Press <CR> (the "CHR$(34)"carriage return"CHR$(34)" key) to"
207 PRINT"use each character to build itself, or press the character to use instead:":GOOD$="":GOSUB 130:PRINT KY$:BLD=ASC(KY$):IF BLD=13 THEN BLD=0
210 GOTO 50
220 FOR LOOP=1 TO LEN(MSG$):CH$=MID$(MSG$,LOOP,1):IF CH$>="a" AND CH$<="z" THEN CH$=CHR$(ASC(CH$)-32) ELSE IF ASC(CH$)=34 THEN CH$="a"
230 MID$(MSG$,LOOP,1)=CH$:NEXT:RETURN
240 CLS:PRINT"Maximum line length =";COL\8*HWIDE:LINE INPUT"Enter null to return to menu. Message? ";MSG$:IF LEN(MSG$)*8*HWIDE>COL THEN PRINT"Too long! Try again!":PRINT:GOTO 240 ELSE IF MSG$="" THEN 50 ELSE GOSUB 220
250 FOR BINARY=0 TO 6:DECODE=2^BINARY:PMSG$="":FOR CHNR=1 TO LEN(MSG$):FOR PIXEL=1 TO 5
260 CH$=" ":IF CH(ASC(MID$(MSG$,CHNR,1)),PIXEL) AND DECODE THEN IF BLD THEN CH$=CHR$(BLD) ELSE CH$=MID$(MSG$,CHNR,1):IF CH$="a" THEN CH$=CHR$(34)
270 PMSG$=PMSG$+STRING$(HWIDE,CH$):NEXT PIXEL:PMSG$=PMSG$+STRING$(HWIDE*3,32):NEXT CHNR:PMSG$=LEFT$(PMSG$,LEN(PMSG$)-HWIDE*3):FOR HI=1 TO HHIGH:LPRINT PMSG$:NEXT HI:NEXT BINARY
280 FOR HI=1 TO HHIGH*3:LPRINT:NEXT HI:GOTO 240
290 DATA A,124,10,9,10,124, B,127,73,73,73,54, C, 62,65,65,65,34
300 DATA D,127,65,65,65,62, E,127,73,73,73,65, F,127,9,9,9,1
310 DATA G,62,65,65,73,58, H,127,8,8,8,127, I,0,65,127,65,0
320 DATA J,48,64,64,64,63, K,127,8,20,34,65, L,127,64,64,64,64
330 DATA M,127,2,4,2,127, N,127,2,12,16,127, O,62,65,65,65,62
340 DATA P,127,9,9,9,6, Q,126,65,81,33,94, R,127,9,25,41,70
350 DATA S,70,73,73,73,49, T,1,1,127,1,1, U,63,64,64,64,63
360 DATA V,7,24,96,24,7, W,127,32,16,32,127, X,99,20,8,20,99
370 DATA Y,3,4,120,4,3, Z,97,81,73,69,67, " ",0,0,0,0,0
380 DATA "0",62,81,73,69,62, "1",0,66,127,64,0, "2",98,81,73,73,102
390 DATA "3",34,65,73,73,54, "4",24,20,18,127,16, "5",39,69,69,69,57
400 DATA "6",60,74,73,73,48, "7",1,113,9,5,3, "8",54,73,73,73,54
410 DATA "9",6,73,73,41,30, !,0,6,95,6,0, a,0,7,0,7,0
420 DATA #,20,127,20,127,20, $,36,42,127,42,18, %,35,19,8,100,98
430 DATA &,54,73,86,32,80, "'",0,0,11,7,0, "`",0,7,11,0,0
440 DATA _,64,64,64,64,64, |,0,0,127,0,0, ~,2,1,3,2,1
450 DATA {,8,8,54,65,65, },65,65,54,8,8, +,8,8,62,8,8
460 DATA (,0,28,34,65,0, ),0,65,34,28,0, *,42,28,127,28,42
470 DATA <,8,20,34,65,0, >,0,65,34,20,8, =,20,20,20,20,20
480 DATA -,8,8,8,8,8, /,32,16,8,4,2, \,2,4,8,16,32
490 DATA ":",0,54,54,0,0, ";",64,54,54,0,0, ^,4,2,1,2,4
500 DATA [,0,127,65,65,0, ],0,65,65,127,0, ".",0,96,96,0,0
510 DATA ",",0,88,56,0,0, ?,2,1,81,9,6, @,62,65,93,89,14
520 DATA END
ATA [,0,127,65,65,0, ],0,65,65,127,0, ".",0,96,96,0,0